import axios from 'axios'
import Qs from 'qs'
import VueCookies from 'vue-cookies'


const axiosInstance = axios.create({
	baseURL: "https://www.semei.net/BookApi",
	timeout: 3000,
	headers: {
		'Content-Type': 'application/x-www-form-urlencoded'
	},
	transformRequest: [function(data) {
		if (data instanceof FormData) return data;
		if (data instanceof URLSearchParams) return data;
		return Qs.stringify(data);
	}]
})


// 添加请求拦截器
axiosInstance.interceptors.request.use(function(config) {
	// 在发送请求之前做些什么
	if(VueCookies.isKey('Authorization')){
		config.headers.Authorization = VueCookies.get('Authorization');
	}
	return config;
}, function(error) {
	// 对请求错误做些什么
	return Promise.reject(error);
});

// 添加响应拦截器
axiosInstance.interceptors.response.use(function(response) {
	// 2xx 范围内的状态码都会触发该函数。
	// 对响应数据做点什么
	const {data:{
		ret,
		data,
		msg
	}} = response;
	if(ret === 200){
		return Promise.resolve(data)
	}else{
		if(ret === 300 && msg === "未登录"){
			VueCookies.remove('Authorization')
			VueCookies.remove('isLogin')
		}
		return Promise.reject(msg)
	}
}, function(error) {
	// 超出 2xx 范围的状态码都会触发该函数。
	// 对响应错误做点什么
	return Promise.reject(error.message);
});


export default axiosInstance
